package com.sugeun.naggosu.util;

public class Log {
	private static final String TAG = "NaGGomSu_Log";
	
	private static final boolean DEBUG_MODE = true;
	
	public static final int LOG_DECORATION_ABOVE_MODE = 1;
	public static final int LOG_DECORATION_BOTTOM_MODE = 2;
	public static final int LOG_DECORATION_BOTH_MODE = 3;
	
	private static final int PREFIX_STRING_LENGTH_LIMIT = 14;
	
	public static void message(String msg) {
		if (DEBUG_MODE) {
			android.util.Log.e(TAG, msg);
		}
	}
	
	public static void message(String prefix, String msg) {
		if (DEBUG_MODE) {
			if (prefix == null) prefix = TAG;
			prefix = subString(prefix);
			android.util.Log.e(TAG, "[" + prefix + "]\t" + msg);
		}
	}
	
	public static void message(String msg, int mode) {
		if (DEBUG_MODE) {
			if (mode == LOG_DECORATION_ABOVE_MODE ||
					mode == LOG_DECORATION_BOTH_MODE) {
				android.util.Log.e(TAG, "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&");
			}
			android.util.Log.e(TAG, msg);
			
			if (mode == LOG_DECORATION_BOTTOM_MODE ||
					mode == LOG_DECORATION_BOTH_MODE) {
				android.util.Log.e(TAG, "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&");
			}
		}
	}
	
	public static void message(String prefix, String msg, int mode) {
		if (DEBUG_MODE) {
		    if (prefix == null) prefix = TAG;
            prefix = subString(prefix);
			
			if (mode == LOG_DECORATION_ABOVE_MODE ||
					mode == LOG_DECORATION_BOTH_MODE) {
				android.util.Log.e(TAG, "[" + prefix + "]\t" +
						"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&");
			}
			android.util.Log.e(TAG, "[" + prefix + "]\t" + msg);
			
			if (mode == LOG_DECORATION_BOTTOM_MODE ||
					mode == LOG_DECORATION_BOTH_MODE) {
				android.util.Log.e(TAG, "[" + prefix + "]\t" +
						"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&");
			}
		}
	}

	private static String subString(String text) {
		if (text.length() > PREFIX_STRING_LENGTH_LIMIT) {
			text = text.substring(0, PREFIX_STRING_LENGTH_LIMIT);
			
			text += "-";
		} else {
			while (text.length() < PREFIX_STRING_LENGTH_LIMIT) {
				text += ",";
			}
			text += ".";
		}
		
		return text;
	}
}
